package top100

// 第一想法是使用交换
func findDisappearedNumbers(nums []int) []int {
	// 计数，改变原来的数组，交换
	for i := 0; i < len(nums); i++ {
		for nums[i] != i+1 {
			// 交换
			// 如果交换位置，本身就是对的，那就不用交换了
			if nums[i] == nums[nums[i]-1] {
				break
			}
			temp := nums[nums[i]-1]
			nums[nums[i]-1] = nums[i]
			nums[i] = temp
		}
	}
	rst := make([]int, 0)
	for i, num := range nums {
		if i+1 != num {
			rst = append(rst, i+1)
		}
	}

	return rst
}
